package org.grayrabbit.cloud.core.module;


/**
 * @author Administrator
 * @version 1.0
 * @created 11-六月-2011 16:52:20
 */
public interface Module<T,A> {

	/**
	 * 
	 * @param name
	 * @throws ModuleConstructException 
	 */
	public void construct(String name) throws ModuleConstructException;

	public void deconstruct();

	public String getName();

	/**
	 * 
	 * @param argument
	 */
	public T submit(A argument) throws ModuleException;

}